# 使用官方Go镜像作为构建阶段
FROM golang:1.24.6-alpine AS builder

# 设置工作目录
WORKDIR /app

# 安装必要的构建工具
RUN apk add --no-cache git gcc musl-dev

# 复制go.mod和go.sum
COPY go.mod go.sum* ./

# 下载依赖
RUN go mod download

# 复制源代码
COPY . .

# 构建应用
RUN CGO_ENABLED=1 GOOS=linux go build -a -installsuffix cgo -o bin/go-llm-forward .

# 使用轻量级运行镜像
FROM alpine:latest

# 安装运行时依赖
RUN apk --no-cache add ca-certificates

# 设置工作目录
WORKDIR /app

# 从构建阶段复制二进制文件
COPY --from=builder /app/bin/go-llm-forward .

# 复制静态文件
COPY --from=builder /app/static ./static

# 复制模板文件
COPY --from=builder /app/templates ./templates

# 复制数据目录（包含数据库文件）
COPY data ./data

# 暴露端口
EXPOSE 8080

# 启动应用
CMD ["./go-llm-forward"]
